ArgoCD 作業ログ
作業日
キーワード
参考文献
リンク
内容
argocd名前空間を作る
$ kubectl create namespace argocd
argocd名前空間にマニフェストを適用
おれはk3sをローカルで動かしているので,argocd-serverのServiceをLoadBalancerにしても特に何もできない すなわち
$ kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "LoadBalancer"}}'
は意味をなさない
なぜか上のマニフェストを適応するとIngressClassにnginxが展開されていたので良しとする
とりあえずIngressのマニフェストを用意して適応
code:argocd-ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: argocd-server
namespace: argocd
annotations:
cert-manager.io/cluster-issuer: "letsencrypt-issuer"
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
kubernetes.io/tls-acme: "true"
spec:
ingressClassName: nginx
rules:
- host: argocd.sno2wman.net
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: argocd-server
port:
number: 443
code:$ kubectl describe ingress -n argocd
Name: argocd-server
Labels: <none>
Namespace: argocd
Address:
Ingress Class: nginx
Default backend: <default>
Rules:
Host Path Backends
---- ---- --------
*
/ argocd-server:443 (10.42.0.186:8080)
Annotations: cert-manager.io/cluster-issuer: letsencrypt-issuer
kubernetes.io/tls-acme: true
nginx.ingress.kubernetes.io/backend-protocol: HTTPS
nginx.ingress.kubernetes.io/ssl-passthrough: true
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Sync 14m (x3 over 28m) nginx-ingress-controller Scheduled for sync
なぜか一生Scheduled for syncなんだけども,無視する
適当にプロキシしてみよう
$ kubectl port-forward --namespace=ingress-nginx service/ingress-nginx-controller 8081:80
code:$ http localhost:8081
HTTP/1.1 200 OK
Accept-Ranges: bytes
Connection: keep-alive
Content-Length: 788
Content-Security-Policy: frame-ancestors 'self';
Content-Type: text/html; charset=utf-8
Date: Fri, 03 Feb 2023 13:34:20 GMT
X-Frame-Options: sameorigin
X-Xss-Protection: 1
<!doctype html><html lang="en"><head><meta charset="UTF-8"><title>Argo CD</title><base href="/"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" type="image/png" href="assets/favicon/favicon-32x32.png" sizes="32x32"/><link rel="icon" type="image/png" href="assets/favicon/favicon-16x16.png" sizes="16x16"/><link href="assets/fonts.css" rel="stylesheet"><script defer="defer" src="main.e135b044a96178cbe495.js"></script></head><body><noscript><p>Your browser does not support JavaScript. Please enable JavaScript to view the site. Alternatively, Argo CD can be used with the <a href="https://argoproj.github.io/argo-cd/cli_installation/">Argo CD CLI</a>.</p></noscript><div id="app"></div></body><script defer="defer" src="extensions.js"></script></html> 動いてるっぽい!
https://gyazo.com/1376ef9afb779d73a117a3031a141c27
初期パスワードを取得
$ kubectl -n argocd get secret argocd-initial-admin-secret -o json | jq ".data.password" -r | base64 -d
service/ingress-nginx-controllerをどうやって公開すればいいのか?
しょうがないからNodePortで公開することに
$ kubectl edit svc -n ingress-nginx ingress-nginx-controller
code:ingress-nginx-controller.yaml
spec:
type: NodePort # 変更 (LoadBalancer -> NodePort)
- appProtocol: http
name: http
nodePort: 30080 # 固定
port: 80
protocol: TCP
targetPort: http
- appProtocol: https
name: https
nodePort: 30443 # 固定
port: 443
protocol: TCP
targetPort: https
こうすることで
$ http localhost:30080 Host:argocd.example.com
でアクセスできるように
あとは自分のサーバのk8s関係ない部分のnginxをここ(30080番及び30443番)に向ける
なんかできてるんだけど,なんでできているのかはわからないね(最悪)
パスワード変更
argocd login argocd.sno2wman.net
Sidecar方式でやる(一番楽そうだったから)
相当のことをしてください(出来るはずなのに出来なかったのでgit cloneしてローカルでやった)